//
//  GeneralTabelView.m
//  通用的一个富文本表格
//
//  Created by 唐秦崴 on 15/3/11.
//  Copyright (c) 2015年 唐秦崴. All rights reserved.
//

#import "GeneralTabelView.h"
#import <BmobSDK/Bmob.h>

// 声明代理
@interface GeneralTabelView ()<UITableViewDataSource,UITableViewDelegate>

@end

@implementation GeneralTabelView

static const int SECTION_NUM = 1; // section 的数量

// 注意自己构建初始化函数
-(GeneralTabelView* ) initWithFrame:(CGRect ) rect style:(UITableViewStyle) tableViewStyle
{
    self = [ super initWithFrame:(rect) style:tableViewStyle ];
    self.delegate = self;
    self.dataSource = self;
    
    // 设置分割线
    self.separatorStyle = UITableViewCellSeparatorStyleSingleLine;
    self.separatorColor = [UIColor colorWithRed:236/255.0 green:208/255.0 blue:191/255.0 alpha:1 ];
    
    return self;
    
    
}

-(void)setTableViewFrame:(CGRect *)tableViewFrame
{
    self.tableViewFrame = tableViewFrame;
}

// tableView每个分区的行数，可以为各个分区设置不同的行数，根据section的值判断即可
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return [ _textLabelMArray count ];
}

// 实现每一行Cell的内容，tableView重用机制
static const float CELL_ARROW_X       = 280;
static const float CELL_ARROW_Y       = 10;
static const float CELL_ARROW_HEIGHT  = 20;
static const float CELL_ARROW_WIDTH   = 20;
-(UITableViewCell* ) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString* cellIdentifier = @"cellIdentifier";
    
    UITableViewCell* cell = [ tableView dequeueReusableCellWithIdentifier:cellIdentifier ];
    
    if ( nil == cell ) {
        
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:cellIdentifier];
        cell.accessoryType = UITableViewCellAccessoryNone;
    }
    
    cell.textLabel.text = [_textLabelMArray objectAtIndex:indexPath.row ];
    // 设置每一行的图片
    cell.imageView.image        = [_imageMArray objectAtIndex:indexPath.row];
    // 设置小标题
    cell.detailTextLabel.text   = [_subtitleMArray objectAtIndex:indexPath.row];
    
    // 设置右侧小箭头
//    cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
    
    // 设置右侧小箭头
    UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
    [button setBackgroundImage:[UIImage imageNamed:@"arrow_right_orange"] forState:UIControlStateNormal];
    [button setFrame:CGRectMake( CELL_ARROW_X , CELL_ARROW_Y, CELL_ARROW_WIDTH, CELL_ARROW_HEIGHT)];
    [cell.contentView addSubview:button];
    
    return cell;
}

// tableView分区数量，默认为1，可为其设置为多个分区
-(NSInteger) numberOfSectionsInTableView:(UITableView *)tableView
{
    return SECTION_NUM;
}

// 设置选中某行的处理
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    if( 0 == indexPath.section )
    {
//        NSLog( @"You chosed section 0 , row： %@", [ self.textLabelMArray objectAtIndex: indexPath.row ]  );
//        NSString* selectedProvinceName = [ self.textLabelMArray objectAtIndex: indexPath.row ];
//        
//        // 查询该省对应的大学
////        BmobQuery *inQuery = [BmobQuery queryWithClassName:@"University"];
////        [inQuery whereKey:@"province" equalTo:selectedProvinceName ];
//        
//        BmobQuery   *bquery = [BmobQuery queryWithClassName:@"Province"];
//        //查找GameScore表所有数据
//        [bquery findObjectsInBackgroundWithBlock:^(NSArray *array, NSError *error) {
//            for (BmobObject *obj in array) {
//                //打印playerName
//                NSLog(@"obj.playerName = %@", [obj objectForKey:@"name"]);
//            }
//        }];
    
        
    }
    else 
    {
        NSLog( @"You chosed section unknown , row： %lu", indexPath.row );
        return ;
    }
    
}


// tableView页眉、页脚的值，同理，可为不同的分区设置不同的页眉，也可不写此方法
//-(NSString*) tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
//{
//    if( self.sectionHeader ){
//        return self.sectionHeader;
//    }else{
//        return nil;
//    }
//}
//-(NSString*) tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger)section
//{
//    return @"页脚";
//}



/*
// Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
- (void)drawRect:(CGRect)rect {
    // Drawing code
}
*/

@end
